home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 1 / Amiga Tools.iso / egs-tools / egs_demo-version / egs_devels / examples / stack_language / initmenu.c < prev    next >
Text File  |  1994-06-06  |  3KB  |  81 lines

  1. /*
  2. ** Author: Markus van Kempen
  3. ** Date  : 17. Dezember 1992
  4. **
  5. ** Input : EG_EFontPtr = Pointer to a font for the menu
  6. ** Output: EI_MenuPtr  = Pointer to the menu structure
  7. **                       to be assigned to the EI_NewWindow structure
  8. **                       --> "newWindow.menu=menu"
  9. **
  10. ** This is a routine to initialize a menu structure.
  11. ** It calls the functions from egsintui.library.
  12. ** If you want to change the menus, you must
  13. ** only change this file.
  14. **
  15. **
  16. ** (c) by VIONA-Development 1992/93
  17. **
  18. */
  19.  
  20. EI_MenuPtr        EI_CreateMenu(void);
  21. EI_MenuItemPtr    EI_CreateLeave(void);
  22.  
  23. EI_MenuPtr InitMenu(EG_EFontPtr font)
  24. {
  25.  
  26.   EI_MenuPtr      menu;
  27.   EI_MenuItemPtr  item1,item2;
  28.   struct TextAttr *attr;
  29.  
  30.   if(font == NULL)
  31.   {
  32.      attr = (struct TextAttr *) EI_GetPrefFont(1);
  33.      font = (EG_EFontPtr)       EG_OpenFont(attr);
  34.  
  35.   }
  36.  
  37.  
  38.  /** Create a complex menu, which will look like this
  39.  
  40.     +----------------------------+------------+
  41.     | Project                    | Flags      |
  42.     +------------+---------------+-----------++
  43.     +------------+               +-----------+
  44.     | Load     O |               | -/ Flag 1 |
  45.     |  Save... > +--------------+| -/ Flag 2 |
  46.     | Rename     | Save       S ||    Flag 3 |
  47.     | New      N | Save as    A ||    Flag 4 |
  48.     | Close    X | Save & Close ||    Flag 5 |
  49.     | About      +--------------+|    Flag 6 |
  50.     | Quit     Q |               |    Flag 7 |
  51.     +------------+               +-----------+
  52.  
  53.  **/
  54.  
  55.   menu  = EI_CreateMenu();
  56.     item1 = EI_CreateItem(font,"Project",0,0,0);
  57.       EI_AddToItem(item1,EI_CreateLeave());
  58.       EI_AddToItem(item1,EI_CreateItem(font,"Load", 0x1,'O',0));
  59.     item2=EI_CreateItem(font,"Save",0x10,0,0);
  60.       EI_AddToItem(item2,EI_CreateItem(font,"Save"         ,0x11,'S',0));
  61.       EI_AddToItem(item2,EI_CreateItem(font,"Save as"      ,0x12,'A',0));
  62.       EI_AddToItem(item2,EI_CreateItem(font,"Save & Close" ,0x13,'C',0));
  63.     EI_AddToItem(item1,item2);
  64.       EI_AddToItem(item1,EI_CreateItem(font,"New",  0x3,'N',0));
  65.       EI_AddToItem(item1,EI_CreateItem(font,"Close",0x4,'X',0));
  66.       EI_AddToItem(item1,EI_CreateItem(font,"About",0x5,NULL,0));
  67.       EI_AddToItem(item1,EI_CreateItem(font,"Quit" ,0x6,'Q',0));
  68.     EI_AddToMenu(menu,item1);
  69.     item1 = EI_CreateItem(font,"Flags",0,0,0);
  70.       EI_AddToItem(item1,EI_CreateLeave());
  71.       EI_AddToItem(item1,EI_CreateItem(font,"Flag 1",0x20,0,1));
  72.       EI_AddToItem(item1,EI_CreateItem(font,"Flag 2",0x21,0,1));
  73.       EI_AddToItem(item1,EI_CreateItem(font,"Flag 3",0x22,0,1));
  74.       EI_AddToItem(item1,EI_CreateItem(font,"Flag 4",0x23,0,1));
  75.       EI_AddToItem(item1,EI_CreateItem(font,"Flag 5",0x24,0,1));
  76.       EI_AddToItem(item1,EI_CreateItem(font,"Flag 6",0x25,0,1));
  77.       EI_AddToItem(item1,EI_CreateItem(font,"Flag 7",0x26,0,1));
  78.     EI_AddToMenu(menu,item1);
  79.   return(menu);
  80. }
  81.